在MFC中,如何设置组合框ComboBox控件下拉列表的高度
方法一:(只适用于静态创建)
如果是从MFC资源框中拖放下拉控件,那么可以单击下拉框的向下箭头,调整弹出的虚线框,就可以实现了。
方法二:(只适用于动态创建)
在动态创建下拉控件的Create函数中,RECT变量的高度Height设置大些,下拉列表的高度 = Height - ComboBox控件的高度
方法三:(适用于动态创建、静态创建)
捕获下拉控件的CBN_DROPDOWN消息,然后通过MoveWindow或SetWindowPos函数,可以实时修改下拉列表的高度
说明:
用系统API MoveWindow、SetWindowPos,这个函数对ComboBox改变大小操作时改变的不是编辑框大小,而是下拉列表的大小
方法三对应的实例如下:
void CA13Box::OnDropdown()
{
//CA13Box为CComboBox的子类
//设置下拉框的高度
CRect rc;
//如果是在主对话框中,可以使用 GetDlgItem(IDC_COMBO)->GetClientRect(&rc); 获取控件的大小
GetClientRect(&rc);
//SetWindowPos函数里面,第五个参数中的100,就表示下拉列表显示的高度
SetWindowPos(NULL, 0, 0, rc.Width(), rc.Height()+100,
SWP_NOZORDER|SWP_NOMOVE|SWP_SHOWWINDOW);
}
本页共25段,986个字符,1615 Byte(字节)